/*
 * Copyright 2016-2017 TVI Go Easy.
 * Created on 2017/5/1 18:05
 */
package org.mechanic.fund.service.product.impl;

import org.mechanic.fund.domain.system.manager.Tag;
import org.mechanic.fund.domain.system.manager.User;
import org.mechanic.fund.domain.utils.mapper.DtoBeanMapper;
import org.mechanic.fund.repository.system.TagRepository;
import org.mechanic.fund.service.product.ITagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 标签信息服务实现
 *
 * @author mechanic
 * @version 0.0.1
 */
@Service
public class TagService implements ITagService {
    private final TagRepository tagRepository;

    @Autowired
    public TagService(TagRepository tagRepository) {this.tagRepository = tagRepository;}

    /**
     * 返回匹配标签编号的标签信息
     *
     * @param id 标签编号
     * @return 标签信息
     */
    @Override
    public Tag findById(String id) {
        return this.tagRepository.findOne(id);
    }

    /**
     * 返回标签信息分页列表
     *
     * @param pageRequest 分页信息
     * @return 标签信息分页列表
     */
    @Override
    public Page<Tag> getList(PageRequest pageRequest) {
        return this.tagRepository.findAll(pageRequest);
    }

    /**
     * 删除匹配标签编号的标签信息
     *
     * @param id 标签编号
     */
    @Override
    public void delete(String id) {
        this.tagRepository.delete(id);
    }

    /**
     * 批量保存标签信息
     *
     * @param tags           标签信息集合
     * @param operationTagId 操作该记录的标签主键编号
     */
    @Override
    public void save(List<Tag> tags, String operationTagId) {
        this.tagRepository.save(tags);
    }

    /**
     * 保存标签信息
     *
     * @param tag            标签信息
     * @param operationUserId 操作该记录的标签主键编号
     */
    @Override
    public Tag save(Tag tag, String operationUserId) {
        return this.tagRepository.save(DtoBeanMapper.setOperationToDomain(tag, operationUserId));
    }
}
